'''
    运算符
        1. 算术运算符 : 数字参与
        2. 赋值运算符(复合赋值运算符) : 所有类型参与(数字参与)
        3. 比较运算符: 数字参与
        4. 逻辑运算符: 布尔值参与
        5. 位运算(暂时不聊)
        6. 成员运算符: 字符串 列表 元组 字典参与
        7. 身份运算符: None参与
        8. 运算符优先级

    表达式
        变量或常量 加 运算符组成表达式, 表达式一般都有返回值
            a. 1 + 2
            b.
                x = 1
                y = 2
                x + y
            c.
                x = 1
                x + 3
'''
from logging import NOTSET

'''
    算数运算符: 参与算术运算的一般都是数字!返回的也是数字
        + - * / : 加减乘除
        %: 取余 
        //: 取商的整数部分
        **: 幂
'''
# a = 2
# b = 3
# result = a + b # 变量,运算符,表达式,运算符优先级
# print(result)
# print(a - b)
# print(a * b)
# print(a / b)
# print(a % b)  #取模
# print(a**b)   #幂
# print(a//b)
# print(a-b-a*b)

'''
    赋值运算符: 所有数据类型都可以参与!一般不考虑返回值
        = 
    复合赋值运算符: 数字类型都可以参与!一般不考虑返回值
        += -= *= /= : 加减乘除加赋值
        %=: 取余加赋值
        //=: 取商的整数部分加赋值
        **=: 幂加赋值
        
        c = 2
        c *= 8 (c = c * 8)
'''
# x = 2
# x **= 3 # x = x**3
# print(x)

'''
     比较运算符: 数字类型都可以参与!返回值肯定是布尔值
        ==
        !=
        >
        <
        >=
        <=
'''
# print(2 == 2)
# print(3 != 2)

'''
    逻辑运算符:布尔类型都可以参与!返回值肯定是布尔值
         and : 与 , 两边的值都为True才返回True, 但凡有一个False就返回False
         or  : 或 , 两边的值都为False才返回False, 但凡有一个True就返回True
         not : 非 , 取反
'''

# print(False and True)# 两元表达式
# print(True or True) # 两元表达式
# print(not True)  # 一元表达式

"""
    成员运算符: in , not in
        in关键字: 返回对应字符或字符串 是不是 在另外一个字符串中(如果在返回Ture 如果不在返回False)
        in关键字: 返回对应元素是不是 在列表中(如果在返回Ture 如果不在返回False)
        in关键字: 返回对应元素是不是 在元组中(如果在返回Ture 如果不在返回False)
        in关键字: 返回对应的key是不是 在字典中(如果在返回Ture 如果不在返回False)
"""

# dict_01 = {"name":"参赛复习"}
# print("参赛复习" not in dict_01)

"""
    身份运算符: is , is not 暂且认为和 == , != 一样
"""
# print(None is not None)
# print(None != None)


'''
    运算符优先级: 参考PPT中的表
        () 可以改变运算符的优先级,不管怎么样 先算括号里的, 从里到外!!
'''
a = 20
b = 10
c = 15
d = 5
e = 0
result = ((a + b) * c) / d
print(result)